草庐IT

javascript oop、instanceof 和基类

全部标签

javascript - 扩展 native 类型的 ES6 类使 instanceof 在某些 JavaScript 引擎中表现异常?

考虑以下ES6类:'usestrict';classDummy{}classExtendDummyextendsDummy{constructor(...args){super(...args)}}classExtendStringextendsString{constructor(...args){super(...args)}}consted=newExtendDummy('dummy');constes=newExtendString('string');console.log(edinstanceofExtendDummy);console.log(esinstanceofEx

javascript - 为什么 instanceof 关键字不适用于 Backbone js 模型?

我正在构建一个涉及继承和使用instanceofjavascript关键字的BackboneJS应用程序。我有以下代码:app.Sport=Backbone.Model.extend({defaults:{id:0,title:'Running'}});在代码的后面,我通过键入来实例化一个新的Sport:varnewSport=newapp.Sport();我可以毫无问题地操作这个新创建的实例。但是,因为有一个但是,instanceof关键字在询问我的实例类型时总是返回false:console.log('isnewSportaSportinstance?'+newSportinsta

javascript - 来自基类的 Typescript 调用函数

有没有办法像覆盖一样从基类调用函数。基类exportclassBaseClass{constructor(){//dosomethingasynchronous//thancallinitialized}}继承类exportclassInheritanceClassextendsBaseClass{initialized(){//getcalledfrombaseclass}} 最佳答案 你的意思是这样的吗:classBase{constructor(){setTimeout(()=>{this.initialized();},10

javascript - 为什么Array是instanceof Object?

我在javascript中使用instanceof时偶然发现了以下内容。ArrayinstanceofObjectreturnstrueObjectinstanceofArrayreturnsfalse这里Array和Object是什么关系? 最佳答案 在构造函数之间,关系或prototypechain是:Array->Function.prototype->Object.prototypeObject->Function.prototype->Object.prototype第一个是true因为构造函数是一个Function而函数

JavaScript - instanceof 没有按照我的预期进行

如果我错了,请原谅我,但我认为这样做:functionMyObject(){return{key:'value',hello:function(){console.log('world');}};}varobj=newMyObject();我创建了一个MyObject类型的新实例。但是,如果我这样做:objinstanceofMyObject它返回false。这让我感到困惑,因为我认为这会返回true。我在这里做错了什么?这是一个fiddle测试这个。我以为我掌握了JavaScript的基础知识,但也许不是。但是,我找到了sources这与我的发现相矛盾。

javascript - 为什么instanceof在原型(prototype)改变后一直说真?

instanceof运算符应该看看原型(prototype),不是吗?为什么在更改对象的原型(prototype)后它不更改答案?示例如下://The.prototypeofobjectscreatedwith'newMyKlass'//isMyKlass.prototypevarMyKlass=function(name,age){this.name=name;this.age=age;}varxx=newMyKlass('xx',20);console.log(xxinstanceofMyKlass);//true,OKxx.prototype=newString('s');con

javascript - 在 Angular 2 的单元测试中模拟基类

我正在尝试编写一个单元测试以查看是否调用了基类方法这是基类exportabstractclassAnimal{protectedeatFood(){console.log("EATFOOD!")}}这是我要测试的类exportclassMonkeyextendsAnimal{onHungry(){this.eatFood();}}这里是测试classMockAnimal{publiceatFood(){console.log("EATMOCKEDFOOD!");}}describe('Monkey',()=>{beforeEach(()=>{TestBed.configureTesti

javascript - 如何获得最具体的 X 使得 y instanceof X 为真?

这个问题在这里已经有了答案:HowtogetaJavaScriptobject'sclass?(21个答案)ThemostaccuratewaytocheckJSobject'stype?(9个回答)关闭9年前。给定一些对象y,我怎样才能找到最具体的X使得表达式yinstanceofX评估为真?例如,下面两个表达式的计算结果都为真[]instanceofObject[]instanceofArray...但是Array比Object更具体。

javascript - 将 object.constructor 与其构造函数和 instanceof 进行比较有什么区别?

这个问题在这里已经有了答案:What'sthedifferencebetweenusinginstanceofandcheckingtheconstructor?(2个答案)Differencebetweeninstanceofandconstructorproperty(2个答案)关闭4年前。假设我有一个Dog构造函数functionDog(name){this.name=name;}我有一个构造函数的实例constmyDog=newDog('Charlie');据我最近了解到,有两种方法可以检查myDog是否是Dog的实例:1.console.log(myDoginstanceof

JavaScript 多重继承和 instanceof

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Javascriptmultipleinheritance在JavaScript中有没有办法做到这一点:Foo=function(){};Bar=function(){};Baz=function(){Foo.call(this);Bar.call(this);};Baz.prototype=Object.create(Foo.prototype,Bar.prototype);varb=newBaz();console.log(b);console.log(binstanceofFoo);console.log